--- ./src/stream_player.vala.orig	2014-07-06 08:48:10.000000000 +0000
+++ ./src/stream_player.vala	2014-07-13 16:17:48.000000000 +0000
@@ -58,9 +58,9 @@
 
     public StreamPlayer () {
 
-        pipeline = Gst.ElementFactory.make ("playbin2","play");
+        pipeline = Gst.ElementFactory.make ("playbin","play");
         bus = pipeline.get_bus();
-        bus.add_watch (busCallback);
+        bus.add_watch (GLib.Priority.DEFAULT, busCallback);
     }
 
     public void add (string uri) throws Radio.Error{
@@ -68,7 +68,7 @@
         string final_uri = uri;
         string content_type = "";
 
-        if (final_uri.index_of("http") == 0){
+        if (final_uri.has_prefix ("http")){
             content_type = this.get_content_type (uri);
         }
 
@@ -81,6 +81,14 @@
             else
                 throw new Radio.Error.GENERAL ("Could not decode m3u file, wrong url or corrupted file");
         } 
+        else if ( content_type == "text/html" && final_uri.has_suffix (".m3u")) {
+            var list = M3UDecoder.parse (uri);
+            // Temporary ignoring all links beside the first
+            if ( list != null )
+                final_uri = list[0];
+            else
+                throw new Radio.Error.GENERAL ("Could not decode m3u file, wrong url or corrupted file");
+        } 
         else if ( content_type == "audio/x-scpls" || content_type == "application/pls+xml") {
             var list = PLSDecoder.parse (uri);
             // Temporary ignoring all links beside the first
